1. Field of the Invention
The present invention is directed to a system and method for rendering three-dimensional graphic images. More particularly, the present invention is directed to a client/server based graphics processing system with dynamic scheduling of server function.
2. Background and Related Art
High function graphics processing systems have traditionally been implemented using special purpose graphics adapter hardware. This special purpose hardware was optimized for graphics processing and integrated into the host computer systems so that the overall system efficiency was high.
The processing power of general purpose workstations, particularly those based on RISC technology has enable these workstations to be employed for increasingly complex graphics tasks. Interactive system performance has, however, become an issue in these systems. In particular, the rendering of complex three dimensional images may consume so much of the processor resource that the workstation ceases to respond to interactive user requests.
Workstation software is often implemented using a client/server model where an application is a client that requests services from a server. A graphics server manages a display device or display surface and controls the rendering and drawing to that surface. Division of process tasks into client and server function supports an environment where several applications (clients) can operate writing to a single display device divided, perhaps, into a plurality of windows. Server software is exemplified by The X Windows System from the Massachusetts Institute of Technology.
Client/Server environments rely on interprocess communication to send the service requests between the client and server process. The communication can be between two processes on a single computer system via shared memory or can be across a network. Communication efficiency is improved by transmitting large packets of information through the interprocess mechanism. Small packets reduce efficiency due to an inability to spread the interprocess communication overhead over sufficient message content.
Large communication packets received by the server result in large processing resources committed to processing that packet and to the reduced interactive response problems mentioned above. Existing systems typically schedule at the packet level so that once a packet begins processing nothing may interrupt that processing.
Thus, a technical problem exists to find a system and method for achieving interprocess communication efficiency without sacrificing interactive response time.